import React from 'react';
// 所有来自于react-router-dom的组件,必须被Router（BrowserRouter as Router）所包裹
import {
    NavLink,
    Routes,
    Route,
    Navigate,
    useRoutes
} from "react-router-dom";
import Home from "./pages/Home";
import About from "./pages/About";
import News from "./pages/News";
import Message from "./pages/Message";
import Details from "./pages/Details";

function App(props) {
    const renderRoutes = useRoutes([
        {
            // 首页
            path:"/home",
            element:<Home/>,
            children:[
                {
                    index:true,
                    element:<Navigate to={"message"}/>
                },{
                    path:"news",
                    element:<News/>
                },{
                    path:"message",
                    element: <Message/>,
                    children:[
                        {
                            path:":id",
                            element:<Details/>
                        }
                    ]
                }
            ]
        },
        {
            path:"/about",
            element: <About/>
        },{
            path:"/",
            element:<Navigate to={"/home"}/>
        }
    ])

    return (
        <div>
            <div className="row">
                <div className="col-xs-offset-2 col-xs-8">
                    <div className="page-header">
                        <h2>React Router Demo</h2>
                    </div>
                </div>
            </div>
            <div className="row">
                <div className="col-xs-2 col-xs-offset-2">
                    <div className="list-group">
                        <NavLink className="list-group-item" to="/about">About</NavLink>
                        <NavLink className="list-group-item" to="/home">Home</NavLink>
                    </div>
                </div>
                <div className="col-xs-6">
                    <div className="panel">
                        <div className="panel-body">
                            {renderRoutes}
                        </div>
                    </div>
                </div>
            </div>
        </div>
    );
}

export default App;